package cn.tedu.search.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

@Data
@Accessors(chain = true)    //支持链式set赋值
@AllArgsConstructor         //自动生成包含全部参数的构造方法
@NoArgsConstructor          //自动生成无参数的构造方法

// @Document标记当前类是ES框架对应的实体类
// indexName制定ES对应的索引名称,运行时，如果这个索引没有这个索引会自动创建出了来
@Document(indexName = "items")
public class Item implements Serializable {

    // Spring通过@Id标记当前实体类的主键属性
    @Id
    private Long id;
    // @Field标记普通属性的注解
    @Field(type = FieldType.Text,
            analyzer = "ik_max_word",
            searchAnalyzer = "ik_max_word")
    private String title;
    // 不分词
    @Field(type =FieldType.Keyword)
    private String category;
    @Field(type =FieldType.Keyword)
    private String brand;
    @Field(type =FieldType.Double)
    private Double price;
    // imgPath是图片路径，不会成为搜索条件
    // 不会（index = false 不创建）创建蓝色区域(索引)，节省空间
    @Field(type =FieldType.Keyword,index = false)
    private String imgPath;
}
